package com.settlement.system.model.query;

import com.settlement.system.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 归档核销表分页查询对象
 *
 * @author haoxr
 * @since 2022/1/14
 */
@Schema
@Data
public class FileAuditPageQuery extends BasePageQuery {

    @Schema(description = "表名")
    private String tableName;

    // 关联单号
    @Schema(description = "关联单号")
    private String linkNo;

    @Schema(description = "单据编号")
    private String keywords;

    // 原始主订单号
    @Schema(description = "原始主订单号")
    private String sourcePreformMainNo;

    // 原始子订单号
    @Schema(description = "原始子订单号")
    private String sourcePreformSubNo;

    // 对账系统平台编码
    @Schema(description = "对账系统平台编码")
    private String secordSourceCode;

    // 电商平台店铺编码
    @Schema(description = "电商平台店铺编码")
    private String thirdSourceCode;

    // 内部系统店铺编码
    @Schema(description = "内部系统店铺编码")
    private String shopCode;

    // 财务系统店铺编码
    @Schema(description = "财务系统店铺编码")
    private String billSysStore;

    // 内部系统电商平台编码
    @Schema(description = "内部系统电商平台编码")
    private String innerShopCode;

    // 核销结果分类
    @Schema(description = "核销结果分类")
    private String mainTypeName;
    // 责任方角色
    @Schema(description = "责任方角色")
    private String push;


    // 核消状态（默认未核销，ua：未核销，aa：已核销）
    @Schema(description = "核消状态")
    private String auditStatus;

    // 入账主体
    @Schema(description = "入账主体ID")
    private Long receiveCompany;

    // 公共字段 个人已办或归档核销表 类型字段
    /**
     * 操作状态（0：已办，1：归档）
     */
    @Schema(description = "操作状态（0：已办，1：归档）")
    private Integer status;
    /**
     * 是否自认损失（0：否，1：是）
     */
    @Schema(description = "是否自认损失（0：否，1：是）")
    private Integer ownerLoss;

    /**
     * PO单号
     */
    @Schema(description = "PO单号")
    private String poNo;

    /**
     * 损失原因
     */
    @Schema(description = "损失原因")
    private String lossReason;

    // 自有平台主订单号
    @Schema(description = "自有平台主订单号")
    private String onwerPreformNo;

    @Schema(description="账单月份")
    private String billMonth;

    @Schema(description = "业务日期查询开始日期")
    private String startDate;

    @Schema(description = "业务日期结束结束日期")
    private String endDate;

    /**
     * 辅助查询字段
     */
    @Schema(description = "表名列表")
    private List<String> tableList;
    /**
     * 辅助查询字段
     */
    @Schema(description = "单号列表")
    private List<String> linkNoList;
    @Schema(description="开始月份")
    @NotBlank(message = "开始月份不能为空")
    private String startMonth;

    @Schema(description="结束月份")
    @NotBlank(message = "结束月份不能为空")
    private String endMonth;

    // 表名列表
    private List<String> tableNameList;
    private List<String> idList;

}
